home *** CD-ROM | disk | FTP | other *** search
/ Aminet 15 / Aminet 15 - Nov 1996.iso / Aminet / util / boot / FastExec23.lzh / FastExec / FastExec.doc < prev    next >
Encoding:
Text File  |  1996-09-12  |  10.1 KB  |  363 lines

  1. $VER: FastExec.doc 2.3 (11.9.96)
  2.  
  3.  
  4.  
  5.  
  6.  
  7. °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
  8.                      September 11, 1996
  9.  
  10.                      Torbjörn Andersson
  11.                           presents
  12.                         FastExec 2.3
  13.  
  14.                           Freeware
  15.  
  16. °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
  17.  
  18.  
  19.  
  20.  
  21.  
  22. 1. Contents
  23. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  24. Contents ................................................. 1
  25. Introduction ............................................. 2
  26. Requirements ............................................. 3
  27. Installation ............................................. 4
  28. Usage .................................................... 5
  29. Comments ................................................. 6
  30. History .................................................. 7
  31. Credits .................................................. 8
  32. Distribution ............................................. 9
  33. Author .................................................. 10
  34.  
  35.  
  36.  
  37.  
  38.  
  39. 2. Introduction
  40. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  41. Most things automatically utilize the fast memory in my
  42. Amiga, but not exec.library, the heaviest used library of
  43. the AmigaOS, nor expansion.library. They remain in the slow
  44. chip memory. Since that is a waste of both time and chip
  45. memory, I made FastExec.
  46.  
  47. FastExec will install a resident tag with the priority of
  48. expansion.library plus one. After Exec is initialized upon
  49. reboot, FastExec's tag will be run. First it will set the
  50. cache if it was specified on the command line. (Enabling it
  51. this early speeds up the booting on my machine with about
  52. 0.3 seconds. :-) Then it patches AddMemList() in
  53. exec.library. If specified it will finally add
  54. non-autoconfig memory. Else we leave the control back to
  55. the system.
  56.  
  57. When someone calls AddMemList(), the patch uses the original
  58. function to add the memory to the system's list. Then it
  59. tries allocate fast memory and move exec.library to it.
  60.  
  61. This should work better than FastExec 1.x. I changed the
  62. way FastExec works after I got my hands on FastExec (!) by
  63. Harry Sintonen, my method is identical to his one.
  64.  
  65. Expansion.library can still be moved to fast memory if you
  66. really want to. AddLibrary() will then be patched to
  67. achieve this, similarly to the AddMemList()-patch.
  68.  
  69. The AddMemList()-patch optionally also relocates the small
  70. chip memory list header to fast memory, speeding up memory
  71. allocations a little, and the same with memory for the
  72. interrupt servers.
  73.  
  74. More as an experiment, some often used functions in Exec can
  75. be patched. The AddMemList()-patch takes care of this too.
  76.  
  77. Under kickstart 1.2/1.3, MakeLibrary() is automatically
  78. patched so library bases will be longword aligned.
  79.  
  80.  
  81.  
  82.  
  83.  
  84. 3. Requirements
  85. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  86. FastExec requires true fast memory. It should work with any
  87. AmigaOS version from 1.2 to at least 3.x.
  88.  
  89.  
  90.  
  91.  
  92.  
  93. 4. Installation
  94. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  95. Edit Startup-Sequence to start FastExec early. Try putting it
  96. first, even before SetPatch, if it doesn't work when started
  97. later.
  98.  
  99. If you use the REBOOT parameter, FastExec will reboot the
  100. machine and move exec.library to fast memory.
  101.  
  102.  
  103.  
  104.  
  105.  
  106. 5. Usage
  107. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  108. Usage: FastExec [SYSINFO] [REBOOT] [PATCH] [FASTSSP]
  109.                 [FASTVBR] [FASTEXP] [FASTMEM] [FASTINT]
  110.                 [CACHE 0xhhhhhhhh]
  111.                 [ADDMEM <base size attr pri> ...]
  112.  
  113. Any value can be written in both normal and hexadecimal
  114. form. Write "0x" in front for hex.
  115.  
  116. The options has no effect if FastExec already is resident.
  117.  
  118. SYSINFO
  119. ~~~~~~~
  120. Shows various system information.
  121.  
  122. REBOOT
  123. ~~~~~~
  124. Installs resident tag and reboots. Otherwise only the tag
  125. will be installed and no reboot will be performed.
  126.  
  127. NOEXEC
  128. ~~~~~~
  129. Won't try to move exec.library to fast memory, in case it
  130. don't work and you would like to use the other options.
  131.  
  132. PCMCIA
  133. ~~~~~~
  134. Try this if you have only a PCMCIA memory card.
  135.  
  136. LOCAL
  137. ~~~~~
  138. Fast memory will be added with the flag MEMF_LOCAL. This way
  139. the RAD-disk will use fast memory.
  140.  
  141. PATCH
  142. ~~~~~
  143. (Ignored under kickstart 1.2/1.3.)
  144.  
  145. For fun I optimized some functions in exec.library. With
  146. this option the lowest level of interrupt handling will be
  147. patched, together with the following functions:
  148.  
  149. · Supervisor()
  150. · ExitIntr()
  151. · Schedule()
  152. · Switch()
  153. · Dispatch()
  154. · Exception()
  155. · Forbid()
  156. · Cause()
  157. · Wait()
  158. · PutMsg()
  159. · ReplyMsg()
  160.  
  161. I did some speed tests with multitasking not disabled, and I
  162. must admit that you usually *don't* notice any difference
  163. with this patch. But when I also had a program in the
  164. background that simply did a busy loop, then there was a big
  165. speed increase of upto 100%.
  166.  
  167. The patches are mostly simple assembler optimizations. I
  168. have used and/or-instructions (sometimes other ones) instead
  169. of bset/bclr/btst where possible. ExecBase is embedded in
  170. move-instructions instead of reading ExecBase from location
  171. $4, which can be useful if you have AGA chipset and/or use
  172. Enforcer. Other optimizations are not much to say about.
  173.  
  174. I have just made optimizations without actually knowing
  175. exactly what all the functions do, so beware. :) There are
  176. two versions of the Switch()-function, I haven't tested the
  177. one used if you have an FPU.
  178.  
  179. FASTSSP
  180. ~~~~~~~
  181. Relocates the supervisor stack to fast memory.
  182.  
  183. FASTVBR
  184. ~~~~~~~
  185. Relocates the vector base register to fast memory.
  186.  
  187. The 68000 processor has no VBR. (Output from SYSINFO will
  188. always say that it is zero).
  189.  
  190. FASTEXP
  191. ~~~~~~~
  192. Relocates expansion.library to fast memory.
  193.  
  194. FASTMEM
  195. ~~~~~~~
  196. Relocates memory list headers to fast memory.
  197.  
  198. FASTINT
  199. ~~~~~~~
  200. Relocates memory for interrupt servers to fast memory.
  201.  
  202. CACHE
  203. ~~~~~
  204. Calls CacheControl() with the supplied parameter. Below are
  205. useful values as defined in exec.i. Logically "or" these
  206. together. Note that 68000 and 68010 has no cache. 68020
  207. has instruction cache only. From what I can tell
  208. 'WriteAllocate' should always be set (68030), although I
  209. don't know exactly why and what it does.
  210.  
  211. CACRF_EnableI       = 0x00000001 (Enable instruction cache)
  212. CACRF_IBE           = 0x00000010 (Enable instruction burst)
  213. CACRF_EnableD       = 0x00000100 (Enable data cache)
  214. CACRF_DBE           = 0x00001000 (Enable data burst)
  215. CACRF_WriteAllocate = 0x00002000
  216. CACRF_CopyBack      = 0x80000000
  217.  
  218. ADDMEM
  219. ~~~~~~
  220. Adds memory to the system's memory list. Can be useful if
  221. you have non-autoconfig memory. Use "5" for attributes if
  222. you don't know what else to use.
  223.  
  224. I'll take my memory as an example. This is the info I get
  225. about it from FastExec with the SYSINFO parameter:
  226.  
  227. MEMORY HEADERS:
  228. Address   Name                 Lower     Upper     Type   Pri
  229. $08000000 DKB1240_Memory       $08000020 $08800000 $0005   10
  230.  
  231. If it was configured manually and I wanted FastExec to do it
  232. from now on, I would write:
  233.  
  234. FastExec ADDMEM 0x08000000 0x00800000 5 10
  235.  
  236.  
  237.  
  238.  
  239.  
  240. 6. Comments
  241. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  242. FastExec stays resident in memory, but after a reset it can
  243. happen that the fast memory is not located at its place.
  244. Then the system won't find ExecBase with its information
  245. about resident things in memory. FastExec and for example
  246. the RAD-disk can't survive a reboot then. I guess this
  247. depends on the memory board one have.
  248.  
  249.  
  250.  
  251.  
  252.  
  253. 7. History
  254. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  255. 1.0 (26.11.95)
  256. · First release.
  257.  
  258. 1.1 (14.1.96)
  259. · lib_NegSize under KS 1.3 is now set to correct value and
  260.   not 0.
  261. · Doesn't set the memory attribute flags
  262.   MEMF_LOCAL/MEMF_24BITDMA under KS 1.3.
  263. · The name string "expansion ram" is used for the fast
  264.   memory under KS 1.3, instead of "Fast Memory".
  265. · The priority that the fast memory has will not be changed,
  266.   it was always set to 10 before.
  267. · Could get wrong idea of where the kickstart was located,
  268.   some checking together with alternative methods makes it
  269.   safer now.
  270. · If kickstart version is 2.0 or higher, FastExec will
  271.   search through the kickstart for everything it needs from
  272.   it. If FastExec will work doesn't depend on the exact
  273.   kickstart version, but more on how it is built. If there
  274.   aren't too big differences, FastExec should now work with
  275.   any kickstart version.
  276. · Changed some output from the SYSINFO argument, and
  277.   documented that the argument exists. :)
  278. · BOARDADDR handles more than one address.
  279.  
  280. 2.0 (21.4.96)
  281. · Rewrote the main code, should work better out there.
  282. · Can relocate a few extra things to fast memory, relocating
  283.   expansion.library is optional.
  284. · Added patches for much used functions in exec.
  285. · Can set caches very early on bootup.
  286. · Can add non-autoconfig memory.
  287. · SYSINFO shows all libraries, and in what type of memory it
  288.   is located.
  289. · FastExec is now freeware.
  290.  
  291. 2.1 (25.8.96)
  292. · Fixed SYSINFO output of FPU.
  293. · When I changed mouse, FastExec always disabled the fast
  294.   memory. I guess I could have fixed that, but I removed
  295.   the option instead.
  296. · Doesn't free the old chip memory header under
  297.   kickstart 1.2/1.3, as it is misaligned (FASTMEM option
  298.   caused FreeTwice-alert).
  299. · Fixed bug with FASTINT under kickstart 1.2/1.3.
  300. · Added NOFASTEXEC option.
  301.  
  302. 2.2 (29.8.96)
  303. · Added LOCAL option.
  304.  
  305. 2.3 (11.9.96)
  306. · Rename NOFASTEXEC option NOEXEC.
  307. · Added PCMCIA option.
  308. · AddLibrary()-patch restores old function after
  309.   expansion.library has been moved.
  310.  
  311.  
  312.  
  313.  
  314.  
  315. 8. Credits
  316. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  317. Thanks to:
  318. · All who registered when FastExec was shareware.
  319. · All who helped me in my more or less successful attempts
  320.   in fixing problems.
  321. · Amiga Shopper for politely asking before putting FastExec
  322.   on their coverdisks and even sending me a copy of the
  323.   magazine.
  324.  
  325.  
  326.  
  327.  
  328.  
  329. 9. Distribution
  330. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  331. No commercial usage of FastExec is allowed without written
  332. permission from the author. Other distribution is allowed if
  333. no files in the original distribution are removed or
  334. modified.
  335.  
  336.  
  337.  
  338.  
  339.  
  340. 10. Author
  341. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  342. FastExec is made by and copyright Torbjörn A. Andersson.
  343.  
  344. Comments/questions etc. are always welcome.
  345.  
  346. Email:
  347. d95ta@efd.lth.se
  348.  
  349. Home page:
  350. http://www.efd.lth.se/~d95ta
  351.  
  352. Home address:
  353. Torbjörn Andersson
  354. Knöppletorp 4379
  355. S-380 31 LÄCKEBY
  356. SWEDEN
  357.  
  358.  
  359.  
  360.  
  361.  
  362.                                           I love you - AMIGA
  363.